/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.marlboroug.users;

import com.marlboroug.entity.Users;
import java.util.List;
import javax.ejb.Remote;


@Remote
public interface UsersManagerRemote {

    /** Permet de créer un utilisateur
     * 
     * @param user_send Envoie un objet de type Users
     * @return Un boolean pour confirmer la création
     */
    Boolean create(Users user_send);

    /** Permet de supprimer un utilisateur
     * 
     * @param ID_users Envoie un ID d'un utilisateur
     */
    void delete (Long ID_users);

    /** Permet de retourner un objet Users en fonction d'un ID
     * 
     * @param ID_users Un ID d'un utilisateur
     * @return Un objet utilisateur
     */
    Users find (Long ID_users);
    
    /** Permet de mettre à jour un utilisateur
     * 
     * @param users Envoie un objet utilisateur
     */
    void update (Users users);
      
    /** Pour vérifier le username d'un utilisateur
     * 
     * @param pattern Envoie le username à tester
     * @return Un objet de type Users
     */
    List<Users> AuthentificationUsername (String pattern);
    
    /** Pour vérifier le MDP d'un utilisateur
     * 
     * @param pattern Envoie le MDP à tester
     * @return Un objet de type Users
     */
    List<Users> AuthentificationPassword (String pattern);
    
    /** Permet de retourner un utilisateur en fonction d'un nom
     * 
     * @param pattern Un nom
     * @return Un utilisateur
     */
    List<Users> FindCreateUser (String pattern);
    
    /** Permet de mettre à jour un utilisateur
     * 
     * @param user Envoie un objet user
     * @return Un boolean pour confirmer la modification
     */
    public Boolean ModifyUser (Users user);
}
